Many computer graphic images are created by mathematically modeling the interaction of light with a three-dimensional (3D) scene from a given viewpoint. This process, called “rendering,” generates a two-dimensional (2D) image of the scene from the given viewpoint and is analogous to taking a photograph of a real-world scene.
As the demand for computer graphics, and in particular for real-time computer graphics, has increased, computer systems with graphics processing subsystems adapted to accelerate the rendering process have become widespread. In these computer systems, the rendering process is divided between a computer's general purpose central processing unit (CPU) and the graphics processing subsystem, architecturally centered about a graphics processing unit (GPU). Typically, the CPU performs high-level operations, such as determining the position, motion, and collision of objects in a given scene. From these high-level operations, the CPU generates a set of rendering commands and data defining the desired rendered image or images. For example, rendering commands and data can define scene geometry, lighting, shading, texturing, motion, and/or camera parameters for a scene. The graphics processing subsystem creates one or more rendered images from the set of rendering commands and data.
With the accelerated rendering provided by these computer systems, various computer applications, such as video games, use cloud-based rendering. Through this technology, users can enjoy a virtual graphics experience on their computing devices. This cloud-based platform also allows users to remotely compete against others in tournaments or sporting events over a communications network. In addition to those who are actively participating in a video game or another computer application, passive viewers who are watching but not playing or actively participating, at video game tournaments or other eSport events can view an ongoing game on their computing device through the viewpoint of one of the players.